package salvarcasodetestes;

import java.io.Serializable;
import java.util.LinkedList;

public class DadosProjetoDeTestesComMain implements Serializable 
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String nomeProjetoDeTestes;
	private String enderecoArquivoJavaEscolhidoParaTestar;
	private LinkedList<DadosCasoDeTestesComMain> dadosDosCasosDeTestesCriados;
	
	public DadosProjetoDeTestesComMain()
	{
		this.dadosDosCasosDeTestesCriados = new LinkedList<DadosCasoDeTestesComMain>();
	}
	
	public String getNomeProjetoDeTestes() {
		return nomeProjetoDeTestes;
	}
	public void setNomeProjetoDeTestes(String nomeProjetoDeTestes) {
		this.nomeProjetoDeTestes = nomeProjetoDeTestes;
	}
	public String getEnderecoArquivoJavaEscolhidoParaTestar() {
		return enderecoArquivoJavaEscolhidoParaTestar;
	}
	public void setEnderecoArquivoJavaEscolhidoParaTestar(
			String enderecoArquivoJavaEscolhidoParaTestar) {
		this.enderecoArquivoJavaEscolhidoParaTestar = enderecoArquivoJavaEscolhidoParaTestar;
	}
	public LinkedList<DadosCasoDeTestesComMain> getDadosDosCasosDeTestesCriados() {
		return dadosDosCasosDeTestesCriados;
	}
	public void setDadosDosCasosDeTestesCriados(
			LinkedList<DadosCasoDeTestesComMain> dadosDosCasosDeTestesCriados) {
		this.dadosDosCasosDeTestesCriados = dadosDosCasosDeTestesCriados;
	}
	
	public void adicionarCasoDeTestesAoProjeto(DadosCasoDeTestesComMain dadosCasoDeTestes)
	{
		this.dadosDosCasosDeTestesCriados.add(dadosCasoDeTestes);
	}
	
	public void removerCasoDeTestesAoProjeto(DadosCasoDeTestesComMain dadosCasoDeTestesRemover)
	{
		for(int i = 0; i < this.dadosDosCasosDeTestesCriados.size(); i++)
		{
			boolean achouCasoDeTesteRemover = true;
			DadosCasoDeTestesComMain dadoTesteDaSuite = this.dadosDosCasosDeTestesCriados.get(i);
			LinkedList<String> entradasCasoDeTestesDaSuite = dadoTesteDaSuite.getValoresDeEntradaSystemInParaTestar();
			LinkedList<String> entradasCasoDeTestesRemover = dadosCasoDeTestesRemover.getValoresDeEntradaSystemInParaTestar();
			for(int j = 0; j < entradasCasoDeTestesDaSuite.size(); j++)
			{
				if(entradasCasoDeTestesDaSuite.get(j).compareTo(entradasCasoDeTestesRemover.get(j)) != 0)
				{
					achouCasoDeTesteRemover = false;
					break;
				}
			}
			if(achouCasoDeTesteRemover == true)
			{
				LinkedList<String> saidasCasoDeTestesDaSuite = dadoTesteDaSuite.getValoresDeSaidaSystemOutEsperados();
				LinkedList<String> saidasCasoDeTestesRemover = dadosCasoDeTestesRemover.getValoresDeSaidaSystemOutEsperados();
				for(int k = 0; k < saidasCasoDeTestesDaSuite.size(); k++)
				{
					if(saidasCasoDeTestesDaSuite.get(k).compareTo(saidasCasoDeTestesRemover.get(k)) != 0)
					{
						achouCasoDeTesteRemover = false;
					}
				}
				
				if(achouCasoDeTesteRemover == true)
				{
					this.dadosDosCasosDeTestesCriados.remove(i);
					break;
				}
			}
			
		}
	}
	

}
